package cn.quevo.ucenter.server.dao;

import cn.quevo.beetlsql.dao.BasicRepository;
import cn.quevo.core.exception.CustomException;
import cn.quevo.ucenter.server.entity.AccessToken;
import cn.quevo.ucenter.server.entity.query.AccessTokenQuery;

/**
 * TokenDao接口
 * 
 * 
 * @author July july_sky@foxmail.com
 * @date 2018年3月26日 下午5:24:42
 * @Copyright ©2015-2035 湘豫(北京)科技有限公司. All Rights Reserved.
 * @version 1.0
 */
public interface AccessTokenDao extends BasicRepository<AccessToken, AccessTokenQuery> {

    /**
     * 更新Token过期时间
     * 
     * @author July july_sky@foxmail.com
     * @date 2018年3月26日 下午6:19:49
     * @param accessToken
     * @return
     */
    Integer updateRefreshToken(AccessToken accessToken);

    /**
     * 根据刷新Token创建新的Token
     * 
     * @author July july_sky@foxmail.com
     * @date 2018年3月26日 下午7:27:02
     * @param accessToken
     * @return
     */
    Integer createAccessTokenByRefresh(AccessToken accessToken);

    /**
     * 删除历史TOKEN
     * 
     * @author July july_sky@foxmail.com
     * @date 2018年3月27日 上午12:27:16
     * @param accessToken
     * @return
     */
    Integer deleteHistory(AccessToken accessToken);
}
